home *** CD-ROM | disk | FTP | other *** search
/ Hardcore Visual Basic 5.0 (2nd Edition) / Hardcore Visual Basic 5.0 - Second Edition (1997)(Microsoft Press).iso / Code / tsort.bas < prev    next >
BASIC Source File  |  1997-06-14  |  1KB  |  50 lines

  1. Attribute VB_Name = "MTestSort"
  2. Option Explicit
  3.  
  4.  
  5. Public esmMode As Integer
  6. Public fSortHiToLo As Integer
  7.  
  8. ' Modify to add more sort modes
  9. Public Function SortCompare(v1 As Variant, v2 As Variant) As Integer
  10.     ' Use string comparisons only on strings
  11.     If TypeName(v1) <> "String" Then esmMode = esmSortVal
  12.     
  13.     Dim i As Integer
  14.     Select Case esmMode
  15.     ' Sort by value (same as esmSortBin for strings)
  16.     Case esmSortVal
  17.         If v1 < v2 Then
  18.             i = -1
  19.         ElseIf v1 = v2 Then
  20.             i = 0
  21.         Else
  22.             i = 1
  23.         End If
  24.     ' Sort case-insensitive
  25.     Case esmSortText
  26.         i = StrComp(v1, v2, 1)
  27.     ' Sort case-sensitive
  28.     Case esmSortbin
  29.         i = StrComp(v1, v2, 0)
  30.     ' Sort by string length
  31.     Case esmSortLen
  32.         If Len(v1) = Len(v2) Then
  33.             If v1 = v2 Then
  34.                 i = 0
  35.             ElseIf v1 < v2 Then
  36.                 i = -1
  37.             Else
  38.                 i = 1
  39.             End If
  40.         ElseIf Len(v1) < Len(v2) Then
  41.             i = -1
  42.         Else
  43.             i = 1
  44.         End If
  45.     End Select
  46.     If fSortHiToLo Then i = -i
  47.     SortCompare = i
  48. End Function
  49. '
  50.